import {ReqGetBaseCategoryList,ReqGetFloor,ReqGetSlide} from "@/api"
// 存储公共数据
const state ={
    categoryList:[],   //三级分类数据
    slide:[] ,   //首页轮播图数据
    floor:[],   //首页楼层数据
}

// 同步更新 state 中的数据 一般mutations中的方法名全为大写
const mutations={
    // 更新 state categoryList 方法
    SAVE_CATEGORY_LIST(state,value){
        state.categoryList = value.slice(0,15);
    },
    // 更新 state  slide 方法
    SAVE_SLIDE_LIST(state,value){
        state.slide = value;
    },
    // 更新 state  floor方法
    SAVE_FLOOR_LIST(state,value){
        state.floor=value;
    }
}

// 写异步方法 调用mutations 中的同步方法更新 state中的数据
const actions={
    //请求 三级分类数据
    async GetCategoryList({commit}){
        //调用api请求方法
        let data = await ReqGetBaseCategoryList();
        // console.log(result);
        //调用 mutations 方法更新state数据
        commit("SAVE_CATEGORY_LIST",data);

    },
    // 请求首页轮播图数据
    async GetSlide({commit}){
        let data = await ReqGetSlide();
        commit("SAVE_SLIDE_LIST",data);
    },
    // 请求首页 楼层数据
    async GetFloorList({commit}){
        let data=await ReqGetFloor();
        commit("SAVE_FLOOR_LIST",data)
    }
}

// 类似于计算中的属性
const getters={

}

export default {
    namespaced:true,
    state,
    actions,
    mutations,
    getters
}